package com.smartleanx.module.hrm.dal.dataobject.employee;

import com.smartleanx.module.hrm.eums.employee.EmployeeContractTypeEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.time.LocalDate;
import java.time.LocalDateTime;

import com.baomidou.mybatisplus.annotation.*;
import com.smartleanx.framework.tenant.core.db.TenantBaseDO;

/**
 * 员工合同 DO
 *
 * @author tengcj
 */
@TableName("hrm_employee_contract")
@KeySequence("hrm_employee_contract_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class EmployeeContractDO extends TenantBaseDO {

    /**
     * 主键id
     */
    @TableId
    private Long id;
    /**
     * 员工id
     */
    private Long employeeId;
    /**
     * 合同编号
     */
    private String contractCode;
    /**
     * 合同类型
     * <p>
     * 枚举 {@link EmployeeContractTypeEnum}
     */
    private Integer contractType;
    /**
     * 开始日期
     */
    private LocalDateTime startTime;
    /**
     * 结束日期
     */
    private LocalDateTime endTime;
    /**
     * 期限（年）
     */
    private Integer term;
    /**
     * 签约公司
     */
    private String signCompany;
    /**
     * 合同签订日期
     */
    private LocalDateTime signTime;
    /**
     * 备注
     */
    private String remarks;
    /**
     * 是否缴纳社保
     */
    private Integer isSocialSecurity;
    /**
     * 是否到期提醒
     */
    private Boolean isExpireRemind;
    /**
     * 排序
     */
    private Integer sort;
    /**
     * 是否已终止
     */
    private Boolean terminationStatus;

    /**
     * 终止原因
     */
    private String terminationReason;
    /**
     * 终止日期
     */
    private LocalDateTime terminationTime;

}
